<?php
class class_mensajes {
	private $_db; 
	function __construct(){
		$this->config();
	}
	function method_Get($params, $error){
		$mensajes = array();
		if($params[0]->tipo == "Recibidos"){
			$this->_db->setQuery("SELECT mensajes.*, DATE_FORMAT(fecha,'%d/%m/%Y') AS fecha, usuarios.usuario FROM mensajes LEFT JOIN usuarios ON mensajes.dni_usuario_crea = usuarios.dni_usuario WHERE mensajes.dni_usuario_destino='".$_SESSION['dni_usuario']."' AND mensajes.estado!='E' ORDER BY fecha DESC");	
		}
		else{
			$this->_db->setQuery("SELECT mensajes.*, DATE_FORMAT(fecha,'%d/%m/%Y') AS fecha, usuarios.usuario FROM mensajes LEFT JOIN usuarios ON mensajes.dni_usuario_destino = usuarios.dni_usuario WHERE mensajes.dni_usuario_crea='".$_SESSION['dni_usuario']."' AND mensajes.estado!='E' ORDER BY fecha DESC");
		}
		$mensajes = $this->_db->loadResult();
		
		return $mensajes;
	}
	function method_getMensaje($params, $error){
		$this->_db->setQuery("SELECT estado, dni_usuario_destino FROM mensajes WHERE cod_mensaje='".$params[0]->cod_mensaje."'");
		$mensajes = $this->_db->loadResult();
		if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
		if($mensajes[0]->estado == "N" AND $mensajes[0]->dni_usuario_destino == $_SESSION['dni_usuario']){
			$this->_db->setQuery("UPDATE mensajes SET estado='L' WHERE cod_mensaje='".$params[0]->cod_mensaje."'");
			$this->_db->alter();
		    if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
		}
		$this->_db->setQuery("SELECT cuerpo, respuesta FROM mensajes WHERE cod_mensaje='".$params[0]->cod_mensaje."'");
		$mensaje = $this->_db->loadResult();
		$result->cuerpo = $mensaje[0]->cuerpo;
		$result->respuesta = $mensaje[0]->respuesta;
		
		return $result;
	}
	function method_EnviarMensaje($params, $error){
		$this->_db->setQuery("INSERT INTO mensajes VALUES (NULL, NOW(), '".$params[0]->asunto."', '".$params[0]->cuerpo."', '', '".$_SESSION['dni_usuario']."','".$params[0]->dni_usuario_destino."', 'N')");
		$this->_db->alter();
		if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
	}
	function method_reSendMensaje($params, $error){
		mysql_query("begin");
			$this->_db->setQuery("UPDATE mensajes SET respuesta='".$params[0]->respuesta."', estado='R' WHERE cod_mensaje='".$params[0]->cod_mensaje."'");
			$query1 = $this->_db->alter();
			$this->_db->setQuery("SELECT asunto, cuerpo, dni_usuario_crea, dni_usuario_destino FROM mensajes WHERE cod_mensaje='".$params[0]->cod_mensaje."'");
			$mensaje=$this->_db->loadResult();
			$this->_db->setQuery("INSERT INTO mensajes (cod_mensaje, fecha, asunto, cuerpo, respuesta, dni_usuario_crea, dni_usuario_destino, estado) VALUES (NULL, '2009-08-19', 'RE: ".$mensaje[0]->asunto."', '".$respuesta."', '', '".$mensaje[0]->dni_usuario_destino."', '".$mensaje[0]->dni_usuario_crea."', 'N')");
			$query2 = $this->_db->alter();
		if($query1 && $query2){
			mysql_query("commit");
			return true;
		}
		else{
			mysql_query("rollback");
			return false;
		}
	}
	function method_borrarMensaje($params, $error){
		$cod_mensaje = $params[0];
		$this->_db->setQuery("UPDATE mensajes SET estado='E' WHERE cod_mensaje='".$cod_mensaje."'");
		$this->_db->alter();
		if (mysql_error()) { $error->SetError(JsonRpcError_Unknown, (__FILE__ . " - " . (__LINE__ - 2) . ": " . mysql_error())); return $error; }
	}
	function method_GetUsuarios(){
		$cod_mensaje = $params[0];
		$this->_db->setQuery("SELECT dni_usuario AS value, usuario AS label FROM usuarios");
		$this->_db->alter();
		$result = $this->_db->loadResult();
		return $result;
	}
	private function config(){
		require_once("conexion.php");
		require_once("DataBase.php");
		$this->_db = new DataBase($SERVIDOR,$USUARIO,$PASSWORD,$BASE);
		mysql_query("SET NAMES utf8");
	}
}
?>